home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 8 / Night Owl CD-ROM (NOPV8) (Night Owl Publisher) (1993).ISO / 017a / hexed21.arj / HEXEARL.TXT < prev    next >
Text File  |  1991-04-20  |  7KB  |  199 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.      Welcome to the Adventures of Earl!
  8.      ~~~~~~~ ~~ ~~~ ~~~~~~~~~~ ~~ ~~~~~
  9.  
  10.      By Mike Graham
  11.  
  12.      April 20th, 1991. 7:26
  13.  
  14.  
  15.        What can you do with patch editors?  Lots of things.    There  are many
  16.      uses of patch  editors  ranging  from  harmless to downright illegal.  It
  17.      would,  for  example, be illegal for you  to  patch  command.com  to  say
  18.      "HerbSoft HS-DOS  ver  7.3",  and  hand  it  out to friends, because that
  19.      infringes on MicroSoft's  copyright,  and although they sometimes seem to
  20.      deserve it, it's  still  not  something  you should do.  However, another
  21.      (often useful) thing to do, is  to  patch command.com to change the error
  22.      messages  from,  say, "File not found" to  "File  not  here!",  or  "IT'S
  23.      GONE!!!!!!!" (MicroSoft isn't exactly  renowned  for  user-friendly error
  24.      messages).  Anything that you patch should NOT be distributed without the
  25.      consent  of  the  writer of the software.  I.e. if you were to pop up the
  26.      HexEdit  executable  in  HexEdit  and  change  my  name  to your name and
  27.      distribute it in the hopes of getting some money from people registering,
  28.      then I would hunt you down and flay the skin from your body with a potato
  29.      peeler.  But I digress.    A  patch  editor  is like a knife; some things
  30.      can't be done without it,  but  it's  easy  to  cut yourself with one.  I
  31.      provide this software as a TOOL.  If  you  misuse  that  tool, I won't be
  32.      held responsible.  But, on a lighter side...
  33.  
  34.        This document chronicles SuperHacker Earl's mangling  of  the fictional
  35.      "Optima V" game.    It  is  meant  to  illustrate  one way to use HexEdit
  36.      effectively.
  37.  
  38.        Earl  has a problem.  Earl has been playing Optima V for almost a  year
  39.      now, and he just can't seem to get past one really  viscous  part  of the
  40.      game.  Perhaps if he had a few thousand extra hit points?
  41.  
  42.        Now, Earl knows that the  character information regarding how many hit-
  43.      points etc. he has in the game,  must  be  stored  in  a  file somewhere.
  44.      Doing a directory of  \OPTIMA,  he  doesn't  see anything promising (like
  45.      SAVEGAME.DAT or  SAVE.GAM  etc.)  so  he has to dig a bit deeper...  Earl
  46.      starts up the game, and saves his current  progress.    Dropping  back to
  47.      DOS, Earl does a directory looking for a  file  that  has  a modification
  48.      date  of  just  a few minutes ago... No dice.  Sometimes game programmers
  49.      adjust  the  date  retroactively after updating the files.  Hmmm.... Time
  50.      for serious action.  Using the  ATTRIB  utility that comes with DOS, Earl
  51.      turns off the ARCHIVE attribute of  all  the files in the game directory,
  52.      using the command "attrib  -a  c:\optima\*.*".    This completed, he runs
  53.      Optima again, saves again, and checks  the  attribute bytes of all of the
  54.      Optima files with the command "attrib c:\optima\*.*".  This lists  all of
  55.      the  files,  with  attributes.  Looking  earnestly  for  an  "A"  in  the
  56.      attribute column, Earl finally spots his prey... OPT016.DAT  is  the save
  57.      file.  Figures it would be something with a  meaningless file name.
  58.  
  59.        Now that he has identified the save file, Earl pops  it  up in HexEdit:
  60.      every superhacker's favorite patch editor.
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.        Earl  has written down all of the stats from his Optima campaign, so he
  74.      is armed and  dangerous...    Earl  knows  that there are several ways to
  75.      store numeric  information  in  a  file,  including  by value and by text
  76.      representation.  Nine times out of ten, a number is stored by value.  Any
  77.      number that can't  be  larger  than  256 (such as a character's strength,
  78.      intelligence,  etc) will likely be stored in a  single  BYTE,  whereas  a
  79.      number  that  has  to escalate to the thousands (such as  money  and  hit
  80.      points) has to be stored in a WORD, which is  two  bytes linked together.
  81.      Now,  according to Earl's records, the current hit  point  value  of  his
  82.      character is 1523.    Popping  up  the base-conversion box in HexEdit, he
  83.      finds that  1523  is  the  same as $05F3 in hexadecimal.  One other thing
  84.      that superhacker  Earl  knows  is  that  WORD  values are stored in files
  85.      BACKWARDS.  That's right, his hit points will show up as "F3 05", not "05
  86.      F3".  So, it's a quick F9 to get to hex  mode,  a  lightning  fast  F3 to
  87.      search,  and  Earl pounds in "F3 05" to search.  The  search  reveals  12
  88.      finds.  Oh joy.  Who wants to track down all 12 locations?   Hmmm...   It
  89.      stands to reason  that all of the stats for the character would be in the
  90.      same area of the file, so maybe we can find some  of  the  other stats...
  91.      What was that value for "Magic Points" again?    1973...    That's $07B5,
  92.      which means we should look for "B5 07".    Earl  tries  a search for that
  93.      series.  Two matches!  Wonderful.    Scanning the screen with a practiced
  94.      eye, Earl doesn't see "F3 05" anywhere around the first find location, so
  95.      he jumps to the next find location,  with  a  mighty  ALT-N,  and  lo and
  96.      behold, there is an "F3 05"  right  nearby.   Well, Earl isn't doing this
  97.      for the sheer thrill, so he quickly decided how many hit points he'd like
  98.      "How  about 5000?"  That's $1388 in hex, so he replaces "F3 05" with  "88
  99.      13"  (backwards,  remember?).   Anyway, Earl exits HexEdit (and saves the
  100.      UNDO log in case (though highly unlikely) he's wrong.
  101.  
  102.        Popping up Optima V finds a super-powerful character, and a happy Earl.
  103.      Now if he could just find where the "gold pieces" value is stored...
  104.  
  105.        Once you have deciphered a game's save file, it's easy to write a small
  106.      program  that will allow you to edit your characters and modify info in a
  107.      much more user-friendly way.
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                                        - 2 -
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.      Contacting the Author
  140.      ~~~~~~~~~~ ~~~ ~~~~~~
  141.      I can be reached by mail at the following address:
  142.  
  143.           Michael A. Graham
  144.           Box 60036
  145.           U of A Postal Outlet
  146.           Edmonton, AB
  147.           Canada, T6G 2S4
  148.  
  149.      Or I can be contacted on InterNet as
  150.      "michael_graham@mts.ucs.ualberta.ca".
  151.      (if that doesn't work, substitute "MGRM" for michael_graham.
  152.  
  153.      I can be  contacted  on  the  McNamara Software BBS in Edmonton, Alberta,
  154.      (403)433-8375, as "Mike Graham" and am also available under the same name
  155.      at The Keep BBS, also in Edmonton, (403)437-1428.  The latest  version of
  156.      HexEdit  and all of my other PD and  Freeware  programming  efforts  will
  157.      always  be available on these two BBS's.  Feel free to contact me if  you
  158.      have suggestions for improvements, or (perish the thought!) a bug report.
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.                                        - 3 -
  197.  
  198.  
  199.